1. Field of the Invention
The present invention relates to the field of performing transformations of the color information in an image.
2. Background Art
The process of transforming image color information from one color space to another is an intensely time consuming operation. A color space is a three-dimensional space in which each point corresponds to a color, including both luminance and chrominance aspects. A color transformation of a source image is performed by converting each picture element of a source image from a first color space to a second color space. Such transformations include: converting appearance values (e.g., RGB and CIELAB) to colorant or ink values (e.g., CMYK); converting colorant values to appearance values; converting from one appearance value representation to another appearance value representation; and, converting from one set of colorants to another set of colorants. The foregoing transformations are provided by means of example.
As computing power increases and as computer users become more sophisticated, the use of color images in computer systems and computer based publishing systems is becoming increasingly widespread. The use of color images is not limited to professionals using high-end computer systems. Instead, it is quickly becoming a standard feature of personal computers as used by all levels of computer users.
Providing efficient and accurate color printing has numerous difficulties. One difficulty is that the process of converting color information from appearance value such as RGB and CIELAB to colorant or ink values such as CMYK is a computationally intensive process. Performing such conversion is called color separation. Accordingly, there is difficulty with providing efficient color printing. This is due to the considerable computing power required for color separation to print the large amount of information contained in an electronic color image.
Color photographic prints, color photographic transparencies and color displays (e.g., color CRTs) are capable of rendering a different range of colors than can be rendered by color printers. This is because color printers are limited by the color inks and paper used in them. That is, the color gamut, defined as the range of colors that can be accurately rendered by a device, is different for different types of devices. Gamut napping is the process of converting color information such that out-of-gamut colors are converted to colors in the gamut of a particular device of interest. Another difficulty providing efficient and accurate color printing is that gamut mapping is a computational intense process. Accordingly, there is difficulty with providing efficient color gamut mapping, and considerable computing power is required to gamut-map the large amount of information contained in an electronic color image.
Different printers render color differently and use colorants or inks that behave differently. Thus, printing an electronic image on a printer using colorants values determined for another printer involves colorant-to-colorant conversion. Colorant-to-colorant conversion is a computationally intensive task. For example, such a task is performed when simulating the output of a printer on another printer. This process is commonly called proofing. For example, it is frequently used to simulate the results of offset printing on a printer attached to a computer. The computational complexity of colorant-to-colorant conversion makes efficient proofing difficult.
Often, the appearance of an image consisting of colorant values aimed at a particular printer are simulated on a computer display. Because displays typically use RGB values, such a task requires colorant-to-appearance value conversion. Colorant-to-appearance value conversion is also required to input a previously separated image to a color image editor such as the Cachet.TM. color editor for color correction or other aesthetic changes. Cachet.TM. is a product of the assignees of this invention but not the subject of the present invention. A difficulty is that colorant-to-appearance value conversion is a computationally intense task.
Color management systems perform all the color conversions described above. A problem with prior art color management systems is that the conversions are computationally intense and thus require much time to be performed for images containing a large amount of color data.
A typical electronic image comprises picture elements, also called pixels, that are arranged into rows and columns. These pixels together make up the image as stored in digital form and as displayed on a visual display. Each pixel of the electronic image contains, among other information, the color information for that particular pixel.
The color information for the pixels in an electronic image can be defined in a number of different ways. If the electronic image is to be displayed on a typical raster scanned display, or if the electronic image is obtained from a color scanner, it is common in the art to use an RGB representation scheme. In the RGB scheme, the color information of each pixel is defined as having some quantity of each of the additive primary colors red (R), green (G) and blue (B). In the case of a displayed image, if the display uses a cathode ray tube (CRT) then the RGB values are converted to voltages that drive the CRT guns. Thus, the RGB values represent the intensities of the red, green, and blue guns, respectively, of the CRT. In the case of scanned images, scanners measure the color at each pixel of an original print or transparency. Such scanners typically output RGB values.
Although the RGB representation scheme is common, other representation schemes may be used. As is well known in the art, three numbers are needed to represent color information at each pixel. The different means of representing color information use a different set of three numbers to represent the color. Because three-dimensional space can be defined by coordinate systems having three variables, the different means for describing color define different color spaces. Each color can be considered a point in color space where the particular variables used to define color indicate the coordinate system of the three-dimensional space. A color space or color solid is defined in Webster's Third New International Dictionary, Unabridged, Copyright 1986, as a, "three-dimensional space each point of which represents a color."
Appearance values in appearance variable color spaces are defined as values produced by any reversible transformation of RGB. Appearance values include R, G, and B values. Other representation schemes that use appearance variable color spaces include the HSB scheme, the CMY scheme, and colorimetric schemes. In the HSB scheme, the color information of each pixel is defined in quantities of hue, saturation, and brightness. The HSB appearance variables are hue, saturation and brightness or brilliance, wherein the color each pixel is represented by a point in the HSB color space. In the CMY scheme, the color information of each pixel is defined by the amount of the three subtractive primiaries CMY for (C)yan, (M)agenta and (Y)ellow. Cyan is green added with blue, magenta is red added with blue, and yellow is red added with green. These appearance variable CMY values are different from the colorants. The colorants are practical inks and dyes, and behave differently from ideal subtractive primaries. Colorimetric schemes for specifying color include use of the mathematical spaces CIELAB, CIELUV, CIEXYZ and xyz. The acronym CIE denotes the Commission Internationale de l'Eclairage, while the following three letters refer to the three coordinates used to define the color information. Colorimetric schemes are typically used in color management systems.
In a digital computer system, to represent the color information in each pixel of an electronic image, it is necessary to use a finite integer usually represented by a finite number of bits. For example, it is common in a digital computer system using an RGB scheme to use eight bits for each of the three colors red, green and blue for each pixel. Using eight bits for each of three colors for each pixel results in a twenty-four bits per pixel scheme, which can result in 2.sup.24 (almost 17 million) different colors per pixel.
In addition to the technology of electronic representations of color images, another technology, that of the printing of color images is briefly described below. Although color images may be electronically represented with any of the above-mentioned schemes, they are not printed in the same way. Printing devices typically apply three or four colorants such as cyan, magenta, yellow and black inks.
Colorants are defined as inks or dyes used for printing. Both for printing reflective prints and transparencies, the density of colorants is approximately proportional to the quantity of ink laid down. The acronym CMYK refers to the densities of cyan, magenta, yellow, and black ink typically used in printing reflective prints. Each pixel's color information is defined as having some quantity of each of the colors cyan, magenta and yellow, and the quantity of black. Transparencies are typically printed with only cyan, magenta and yellow. Because inks and dyes combine in a complicated way, CMY colorants behave differently from and only approximately like the true subtractive primaries cyan magenta and yellow. CMY is subsequently used herein to denote colorant values.
The conversion of color information from appearance values such as RGB to colorant or ink values such as cyan, magenta, yellow, and possibly black (CMYK) is a complicated process. As stated previously, such conversion is known in the art as color separation. Color separation is frequently used in the process of printing scanned images and synthetically generated color images. This is done because scanned and synthetic images are typically generated in RGB, while printing devices apply three or four colorants such as CMY or CMYK.
Color separation is a computationally complex and time consuming task, even with special purpose hardware. Because models of the conversion to colorants are not sufficiently accurate, most methods known in the art for performing color separation on digital hardware such as computers and special purpose separation hardware use as the key step an empirical table of color separations together with a multidimensional interpolation method to deal with values not in the empirical table of color separations. Such a prior art system is disclosed in U.S. Pat. No. 4,500,919 entitled "Color Reproduction System" that was issued to William F. Schreiber on Feb. 19, 1985. Although approximate interpolation using linear techniques is used typically, such table lookup and interpolation techniques are relatively slow. Furthermore, transformation from RGB to CMYK using such prior art techniques often requires additional steps of non-linear transformations of the RGB variables. This is followed by transformation of these new variables to an intermediate color space such as CIELAB, followed by transformation from the intermediate color space to CMYK. Therefore, there exists a need for faster color separation methods and apparatuses.
A technique for speeding up color separation might be to build a lookup table of precalculated separations. Each precalculation can be done by any known method including the table lookup and interpolation technique. Thus, a table can be built that has one entry for every RGB value encountered in the image. Each entry in the table has the corresponding colorant (typically CMYK) values. Since 24-bits are typically used to define RGB, the table typically has 2.sup.24 entries. When one byte is used for each of C, M, Y and K, the table thus requires 64 MB of storage. However, this amount of storage is not practical for most applications.
A prior art method for speeding up color separation is disclosed in U.S. Pat. No. 4,668,980 entitled "Video Retouching Systems" that was issued to Peter W. Stansfield, et al. on May 26, 1987. It speeds up color separation by using the observation that, in typical electronic images, many pixels have identical color values. Thus, increased processing speed is obtained by taking advantage of previously calculated separations. The prior art technique builds a table that has one entry for every RGB value encountered in the image. Each entry in the table has the corresponding CMYK values. Given the RGB value of a particular pixel, a check is made to determine if the value is stored in the table, thereby indicating such a color value has already been encountered in the image. When the check returns true, the needed separation is already available. Otherwise, the required CMYK values are calculated using conventional means, and are inserted as a new entry in the table. Since typically, 24-bits are used to define RGB, the table potentially has 2.sup.24 entries, thus may require more than 64 MB of storage (given 8-bits for each of C, M, Y and K), which is not practical for most applications.
The other conversions, appearance value-to-appearance value, colorant-to-appearance value, and colorant-to-colorant, are similarly computationally intense. These conversions likewise are typically performed using lookup in empirical tables and multidimensional interpolation. Some of the appearance value-to-appearance value calculations are carried out by computation, but because of the large number of pixels in a typical electronic image, the conversion process is a computationally complex and time consuming task, even with special purpose hardware.
It is an object of this invention to provide a method and apparatus for rapidly performing color-space conversions including appearance value-to-colorant value conversion such as color separation, appearance value-to-appearance value conversion, colorant value-to-appearance value conversion, and colorant value-to-colorant value conversion.